package org.summer.lawyer.domain.vo.spucomment;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.common.sensitive.annotation.Sensitive;
import org.summer.common.sensitive.core.SensitiveStrategy;
import org.summer.lawyer.domain.SpuComment;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 商品评价信息视图对象 spu_comment
 *
 * @author summer
 * @date 2024-06-21
 */
@Schema(title ="商品评价信息视图对象 spu_comment", description = "商品评价信息视图对象 spu_comment")
@Data
@AutoMapper(target = SpuComment.class)
public class SpuCommentVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    private Long id;

    /**
     * 用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "用户ID")
    private Long wxUserId;

    /**
     * 用户昵称
     */
    @Schema(title = "nickname", type = "String", description = "用户昵称")
    private String nickname;

    /**
     * 用户头像
     */
    @Schema(title = "avatar", type = "String", description = "用户头像")
    private String avatar;

    /**
     * 是否匿名（0否，1是）
     */
    @Schema(title = "anonymous", type = "String", description = "是否匿名（0否，1是）")
    private String anonymous;

    /**
     * 订单ID
     */
    @Schema(title = "orderId", type = "Long", description = "订单ID")
    private Long orderId;

    /**
     * 交易订单项编号关联
     */
    @Schema(title = "orderItemId", type = "Long", description = "交易订单项编号关联")
    private Long orderItemId;

    /**
     * 商品ID
     */
    @Schema(title = "spuId", type = "Long", description = "商品ID")
    private Long spuId;

    /**
     * 商品名称
     */
    @Schema(title = "spuName", type = "String", description = "商品名称")
    private String spuName;

    /**
     * 综合评价
     */
    @Schema(title = "overallRating", type = "Long", description = "综合评价")
    private Integer overallRating;

    /**
     * 专业水平
     */
    @Schema(title = "competenceRating", type = "Long", description = "专业水平")
    private Integer competenceRating;

    /**
     * 工作态度
     */
    @Schema(title = "attitudeRating", type = "Long", description = "工作态度")
    private Integer attitudeRating;

    /**
     * 工作效率
     */
    @Schema(title = "efficiencyRating", type = "Long", description = "工作效率")
    private Integer efficiencyRating;

    /**
     * 平均分
     */
    @Schema(title = "averageRating", type = "Long", description = "平均分")
    private Integer averageRating;

    /**
     * 评价内容
     */
    @Schema(title = "reviewContent", type = "String", description = "评价内容")
    private String reviewContent;

    /**
     * 评价时间
     */
    @Schema(title = "reviewTime", type = "Date", description = "评价时间")
    private Date reviewTime;

    /**
     * 律所ID
     */
    @Schema(title = "lawFirmId", type = "Long", description = "律所ID")
    private Long lawFirmId;

    /**
     * 律师印象标签
     */
    @Schema(title = "reviewTag", type = "String", description = "律师印象标签")
    private String reviewTag;

    /**
     * 商家是否回复（0未回复，1已回复）
     */
    @Schema(title = "replyStatus", type = "String", description = "商家是否回复（0未回复，1已回复）")
    private String replyStatus;

    /**
     * 回复人ID
     */
    @Schema(title = "replyUserId", type = "Long", description = "回复人ID")
    private Long replyUserId;

    /**
     * 回复内容
     */
    @Schema(title = "replyContent", type = "String", description = "回复内容")
    private String replyContent;

    /**
     * 回复时间
     */
    @Schema(title = "replyTime", type = "Date", description = "回复时间")
    private Date replyTime;

    /**
     * 评论状态
     */
    @Schema(title = "status", type = "String", description = "评论状态")
    private String status;

    /**
     * 评价是否可见（0不可见，1可见）
     */
    @Schema(title = "visible", type = "String", description = "评价是否可见（0不可见，1可见）")
    private String visible;

    /**
     * 用户手机号
     */
    @Schema(title = "phoneNumber", type = "String", description = "用户手机号")
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String phoneNumber;

    /**
     * 律所名称
     */
    @Schema(title = "lawFirmName", type = "String", description = "律所名称")
    private String lawFirmName;

    /**
     * 律所logo
     */
    @Schema(title = "lawFirmLogo", type = "String", description = "律所logo")
    private String lawFirmLogo;

    /**
     * 订单编号
     */
    @Schema(title = "orderNumber", type = "String", description = "订单编号")
    private String orderNumber;
}
